//
//  STFTabBar.swift
//  高仿新浪微博
//
//  Created by 沈腾飞 on 2017/1/16.
//  Copyright © 2017年 shen. All rights reserved.
//

import UIKit

class STFTabBar: UITabBar {
    
    
    //声明一个闭包
    var addButton : (()->())?
     
    override init(frame: CGRect) {
       
        super.init(frame: frame)
        
        setupUI()
    
    }
    //  required   必须的
    //如果继承自UIview 又是手写代码  系统就会默认给你添加一个initwithcoder方法
    //该类在被别人使用时就会告诉别人   该类不支持xib和sb创建
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    //MARK : -加载视图
    private func setupUI () {
        
        addSubview(addBtn)
        
        
        
    }
    //计算按钮的位置
    override func layoutSubviews() {
        
        super.layoutSubviews()
        
         //计算UITabBarButton的宽度
        let w = UIScreen.main.bounds.width * 0.2
        //计算UITabBarButton的位置
        var index : CGFloat = 0
        //遍历tabber的子控件
        for view in subviews {
            if view.isKind(of: NSClassFromString("UITabBarButton")!) {
                //设置UITabBarButton的宽 和x
                view.frame.size.width = w
                view.frame.origin.x = index * w
                //改变UITabBarButton的位置
                index += 1
                
                //加号按钮的位置
                if index == 2 {
                    index += 1
                }
            }
        }
        //设置加号按钮的frame
        addBtn.center.x = frame.width * 0.5
        addBtn.center.y = frame.height * 0.5
        
    }
    //MARK : - 按钮的监听事件
    @objc private func btnClick () {
        
        addButton?()
        
        
    }
    
    
    
    
    //MARK : - 懒加载方法  创建加号按钮
    
    private lazy var addBtn : UIButton = {
        
        let btn = UIButton ()
        //设置按钮图片
        btn.setImage(UIImage(named: "tabbar_compose_icon_add"), for: UIControlState.normal)
        btn.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), for: UIControlState.highlighted)
        
        
        //设置按钮的背景图片
        btn.setBackgroundImage(UIImage(named : "tabbar_compose_button"), for: UIControlState.normal)
        
        btn.setBackgroundImage(UIImage(named : "tabbar_compose_button_highlighted"), for: UIControlState.highlighted)
        
        //设置按钮的大小
        btn.sizeToFit()
        
        //给添加按钮添加监听事件
        btn.addTarget(self, action: #selector(btnClick), for: UIControlEvents.touchUpInside)
        
        
        
        
        
        return btn
    } ()
    
    
    
}
